var buddyListDialog = {
    messages: new Array(), alerts: new Array(), BuddyListLoaded: false, recommend: { id: 0, name: 'Clip name', img: '', extViews: 0, intViews: 0, ranking: 0 }, gift: { id: 0, name: 'Clip name', img: '', price: 0, tax: 0, total: 0 },

    init: function() {
        setInterval('buddyListDialog.updateBuddies()', 10000);
        var sendAlert = function(type, intp, text1, text2, callback) {
            $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                data: { REQ_ID: 'SEND_ALERTS', from: $userid, 'to[]': buddyListDialog.getSelected(), type: type, 'int': buddyListDialog.recommend.id, 'msg1': text1, 'msg2': text2 },
                success: callback,
                error: buddyListDialog.requestError
            });
        };
        $('#buddyListDialog img.close_btn').click(function() {
            buddyListDialog.closeWindow();
        });
        $('#buddy_recommend_btn').click(function() {

            var selected = buddyListDialog.getSelected();
            if (selected.length == 0) {
              $('#buddy_recomendationsent').hide()
              $('#buddy_nouserssel').show();
              window.setTimeout("$('#buddy_nouserssel').hide()", 5000);
              return;
            } else {
              $('#buddy_recomendationsent').hide()
              $('#buddy_nouserssel').hide();
            }

            var cur_user = $("#user_name").html();
            var cur_played_clip = $("#player_clip_title_item").html();
            var cur_user_default_channel_id = $("#current_user_default_channel_id").val();


            var cur_played_clip_id = $("#player_clip_title_item").attr("clip_id");
            var cur_played_video_id = $("#player_clip_title_item").attr("video_id");

            var is_clip_alone = 0;
            var link_value = '';

            if ($(".current_channel_title").css("display") == "none") {
                is_clip_alone = 1;
                link_value = '<a href="#panel=channels&channel_id=' + cur_user_default_channel_id + '">' + cur_user + '</a> recommends you check out this clip: <a href="#panel=clips&clip_id=';
                link_value_ext = 'http://'+window.location.hostname+'/home#panel=clips&clip_id=';
            } else {
                var cur_played_channel_id = $(".player_channel_title").attr("channel_id");
                is_clip_alone = 0;
                link_value = '<a href="#panel=channels&channel_id=' + cur_user_default_channel_id + '">' + cur_user + '</a> recommends you check out this clip: <a href="#panel=channels&channel_id=' + cur_played_channel_id + '&clip_id=';
                link_value_ext = 'http://'+window.location.hostname+'/home#panel=channels&channel_id=' + cur_played_channel_id + '&clip_id=';

            }

            var url = "/ajax/get_clip.php";
            url = url+"?clip_id=" + cur_played_clip_id + "&youtube_id=" + cur_played_video_id;
            
            $.ajax({
                cache: false,
                url: url,
                dataType: 'json',
                async: 'false',
                success: function (data) {
                    if (data['status'] == 'ok') {
                        link_value = link_value + data['clip_id'] + '">' + cur_played_clip + '</a>';
                        link_value_ext = link_value_ext + data['clip_id'] ;
                        data['params']['clip_link'] = link_value_ext;
                        sendAlert(5, buddyListDialog.recommend.id, link_value, data['params'], function() { showAndHideSent(); check_for_updates(); });  
                        return;
                    } else {
                        throw 'Recomend Clip failed ' + data['message'];
                    }
                },
                error: function () {
                    throw 'Recomend Clip failed ';
                }
            });

            return;

        });
        $('#buddy_gift_btn').click(function() {

            var selected = buddyListDialog.getSelected();
            if (selected.length == 0) {
                $('#buddy_recomendationsent').hide()
                $('#buddy_nouserssel').show();
                window.setTimeout("$('#buddy_nouserssel').hide()", 5000);
                return;
            } else {
                $('#buddy_recomendationsent').hide()
                $('#buddy_nouserssel').hide();
            }

            // close Alert window
            $('#chatAlerts').hide();
            // close Chat window
            $('#chatDialog').hide();
            $('#chatRemoveBuddyDialog').hide();
            $('#chatToBuddyDialog').hide();

            var cur_played_clip_id = $("#player_clip_title_item").attr("clip_id");
            var cur_played_video_id = $("#player_clip_title_item").attr("video_id");
            var url = "/ajax/gift_clip.php";
            url = url+"?state=info&clip_id=" + cur_played_clip_id + "&youtube_id=" + cur_played_video_id + "&num_buddy=" + selected.length;

            $.ajax({
                cache: false,
                url: url,
                dataType: 'json',
                success: function (data) {
                    $("#right-col-box").html(data["message"]);

                },
                error: function () {
                    throw 'Gift Clip failed ';
                }
            });

            return;

        });
        $('#chatRecommendCancel').bind('click', function() {
            $('#chatRecommendDialog').hide();
        });
        $('#chatRecommendCompleteClose').bind('click', function() {
            $('#chatRecommendDialog').hide();
        });
        $('#chatToBuddyCancel, #chatToBuddyCompleteClose').bind('click', function() {
            $('#chatToBuddyDialog, #chatToBuddyCompleteDialog').hide();
        });
        $('#chatRemoveBuddyCancel, #chatRemoveBuddyCompleteClose').bind('click', function() {
            $('#chatRemoveBuddyDialog').hide();
        });
//        $('#chatRecommendSend').bind('click', function() { sendAlert(5, buddyListDialog.recommend.id, function() { $('#chatRecommendTitle, #chatRecommendName, #chatRecommendSelected, #chatRecommendImg, #chatRecommendExtViews, #chatRecommendIntViews, #chatRecommendRanking, #chatRecommendSend, #chatRecommendCancel').hide(); $('#chatRecommendCompleteTitle, #chatRecommendCompleteInfo, #chatRecommendCompleteClose').show(); }); });
        $('#chatGiftSend').bind('click', function() {

        });
        $('#chatToBuddySend').bind('click', function() {
            $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                data: { REQ_ID: 'REQUEST_TO_ADD_FRIEND', 'userid': $('#chatToBuddyId').attr('value'), 'short_msg': $('#AddBuddyMssg').val() },
                success: function(data) {
                    check_for_updates();
                    $('#chatToBuddyDialog').hide();
                    $('#chatToBuddyCompleteDialog, #chatToBuddyCompleteTitle, #chatToBuddyCompleteClose').show();
                    $('#chatToBuddyCompleteTitle').text($('response', data).text());
                    //if ($('response', data).attr('code') == '0') $('#chatToBuddyCompleteInfo').show();
                }, error: buddyListDialog.requestError
            });
        });
        $('#chatRemoveBuddySend').bind('click', function() {
            $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                data: { REQ_ID: 'REMOVE_FROM_BUDDYLIST', 'buddyID': $('#chatRemoveBuddyId').attr('value') },
                success: function(data) {
                    check_for_updates();
                    $('#chatRemoveBuddyTitle, #chatRemoveBuddyName, #chatRemoveBuddyCName, #chatRemoveBuddyImg, #chatRemoveBuddyCancel, #chatRemoveBuddySend').hide();
                    $('#chatRemoveBuddyCompleteTitle, #chatRemoveBuddyCompleteClose').show();

                    if ($("#chatRemoveBuddySource").val() == "search" ) {
                        $("#chatRemoveBuddySource").val("");
                        perform_search('users','all','','best','desc',false, true);
                        //scrollWin();
                        //return;
                    }
                    if ($("#chatRemoveBuddySource").val() == "channel" ) {
                        $("#chatRemoveBuddySource").val("");
                        location = '#panel=channels';
                    }
                    if ($("#chatRemoveBuddySource").val() == "mychannel" ) {
                        $("#chatRemoveBuddySource").val("");

                        load_thumbstrip_module(global_thumbstrip_tab,global_thumbstrip_state,global_search_group,global_search_category,global_search_type,global_search_keyword,global_search_sort_by,global_search_sort_order,global_thumbstrip_index,0);

                    }
                    if ($("#chatRemoveBuddySource").val() == "clipowner" ) {
                        $("#chatRemoveBuddySource").val("");

                        load_thumbstrip_module(global_thumbstrip_tab,global_thumbstrip_state,global_search_group,global_search_category,global_search_type,global_search_keyword,global_search_sort_by,global_search_sort_order,global_thumbstrip_index,0);
                    }

                    if ($("#chatRemoveBuddySource").val() == "panel" ) {

                        var tab_id = global_thumbstrip_tab;
                        if (tab_id == 30) {
                            location = '#panel=search&type=channels&keywords=' + global_search_keyword;
                        }
                        if (tab_id == 32) {
                            //location = '#panel=channels/browse';
                            load_thumbstrip_module(32,0,'channels','all',2,'','date','desc',1,0);
                        }
                        if (tab_id == 33) {
                            //location = '#panel=channels';
                            load_channels_page(1,global_refresh_player);
                        }
                        if (tab_id == 34) {
                            //location = '#panel=favorites';
                            load_thumbstrip_module(34,0,'channels','all',6,'','rank','asc',1,0);  
                        }
                        if (tab_id == 10) {
                            //location = '#panel=favorites';
                            load_home_page(1,global_refresh_player);  
                        }
                        if (tab_id == 12) {
                            //location = '#panel=favorites';
                            load_thumbstrip_module(12,0,'channels','all',11,'','rank','asc',1,0);  
                        }
  
                    }
  

  
                },
                error: function(data) {
                    buddyListDialog.requestError('Ajax request error.');
                }
            });
        });
        $('#buddyListDialog span.buddy_alerts_label').bind('click', function() {
            buddyListDialog.pushAlerts();
        });

        $('#buddyListDialog span.buddy_chat_label').bind('click', function() {

            if (buddyListDialog.messages.length == 0) return;
            var userid = buddyListDialog.messages[buddyListDialog.messages.length - 1].userId; 
            buddyListDialog.pushMessages(userid);
            $('#chatDialog').show();
        });
        $('#buddy_alerts_btn').bind('click', function() {
            buddyListDialog.pushAlerts();
        });  
  
        this.messagesCount();
    },

    showGift: function(gift_id, alert_id) {
        var url = "/ajax/gift_clip.php";
        url = url+"?state=get&gift_id=" + gift_id + '&alert_id=' + alert_id;

        $.ajax({
            cache: false,
            url: url,
            dataType: 'json',

            success: function (data) {
                chatAlerts.closeWindow();
                $("#right-col-box").html(data["message"]);
            },
            error: function () {
                throw 'Gift Clip (info window) failed ';
            }
        });
    },

    acceptGift: function(gift_id, alert_id) {
        var channel_id = -1;
        channel_id = $('#buy_for_channel_selection').val();
        
        var url = "/ajax/gift_clip.php";
        url = url+"?state=accept&gift_id=" + gift_id + "&channel_id=" + channel_id;
  
        $.ajax({
            cache: false,
            url: url,
            dataType: 'json',

            success: function (data) {
                $("#right-col-box").html(data["message"]);
                update_goldies();

                if (data["status"] == "ok") {
  
                // remove alert
                $.ajax({
                    type: "POST",
                    url: '/chat/TakeATourByRequest.php',
                    datatype: 'xml',
                    data: { REQ_ID: 'SET_ALERTREAD_MARKER', id: alert_id },
                    success: function() {
                        $('#alert'+alert_id).empty();
//                        for (x = 0; x <= chatAlerts.collection.length; x = x+1 ) {
//                            if (chatAlerts.collection[x]['id'] == alert_id) {
//                                chatAlerts.collection[x] = [];
//                                break;
//                            }
//                        }
                        chatAlerts.closeWindow();
  
                        if (global_current_page == STATE_PAGE_MY_CHANNELS) {
                            load_thumbstrip_module(global_thumbstrip_tab,global_thumbstrip_state,global_search_group,global_search_category,global_search_type,global_search_keyword,global_search_sort_by,global_search_sort_order,global_thumbstrip_index,global_refresh_player);
                        }  
                        
                    },
                    error: chatAlerts.requestError
                });
                } else {
                    if (data["status"] == "not_enought_permission") {
                        show_permission_buy(data["need_permission"]);
                    }
                }
            },
            error: function () {
                throw 'Gift Clip (accept window) failed ';
            }
        });
    },


    declineGift: function(gift_id, alert_id) {
        var url = "/ajax/gift_clip.php";
        url = url+"?state=decline&gift_id=" + gift_id;

        $.ajax({
            cache: false,
            url: url,
            dataType: 'json',

            success: function (data) {
                $("#right-col-box").html(data["message"]);

                // remove alert
                $.ajax({
                    type: "POST",
                    url: '/chat/TakeATourByRequest.php',
                    datatype: 'xml',
                    data: { REQ_ID: 'SET_ALERTREAD_MARKER', id: alert_id },
                    success: function() {
                        $('#alert'+alert_id).empty();
                        chatAlerts.closeWindow();
                    },
                    error: chatAlerts.requestError
                });
            },
            error: function () {
                throw 'Gift Clip (decline window) failed ';
            }
        });
    },

    sendGift: function(gift_clip_id,gift_video_id) {
        var selected = buddyListDialog.getSelected();
        if (selected.length == 0) {
            $('#buddy_recomendationsent').hide()
            $('#buddy_nouserssel').show();
            window.setTimeout("$('#buddy_nouserssel').hide()", 5000);
            return;
        } else {
            $('#buddy_recomendationsent').hide()
            $('#buddy_nouserssel').hide();
        }

        var cur_user = $("#user_name").html();
        var current_user_default_channel_id = $("#current_user_default_channel_id").val();
        var cur_user_default_channel_id = $("#current_user_default_channel_id").val();

        var url = "/ajax/gift_clip.php";

        $.ajax({
            cache: false,
            url: url,
            dataType: 'json',
            type: 'GET',
            data: { 'state': 'buy', 'clip_id': gift_clip_id, 'youtube_id':  gift_video_id,  'to[]': buddyListDialog.getSelected() },
            success: function (data) {

  
                if ($(".current_channel_title").css("display") == "none") {
                    is_clip_alone = 1;
                    link_value = '<a href="#panel=channels&channel_id=' + cur_user_default_channel_id + '">' + cur_user + '</a> has sent you a clip as a gift: <a href="#panel=clips&clip_id=';
                    link_value_ext = 'http://'+window.location.hostname+'/home#panel=clips&clip_id=';
                } else {
                    var cur_played_channel_id = $(".player_channel_title").attr("channel_id");
                    is_clip_alone = 0;
                    link_value = '<a href="#panel=channels&channel_id=' + cur_user_default_channel_id + '">' + cur_user + '</a> has sent you a clip as a gift: <a href="#panel=channels&channel_id=' + cur_played_channel_id + '&clip_id=';
                    link_value_ext = 'http://'+window.location.hostname+'/home#panel=channels&channel_id=' + cur_played_channel_id + '&clip_id=';

                }
  
                link_value_ext2 = '';
  
                if (data['status'] == 'ok') { // is ok?
                    var arr_recepients = data['recepient_id'];
                    var arr_gift = data['gift_id'];
                    var x;

                    link_value_ext2 = data['clip_id'];
  
                    for (x in arr_recepients) {
                        var one_recepients = new Array();
                        one_recepients[0] = arr_recepients[x];

                        text1 =  link_value + data['clip_id'] + '">' + data['clip_name'] +  '</a>. <a href="javascript:void(0)" class="chat_alert_button" onclick="buddyListDialog.showGift(' + arr_gift[x] + ',g1MTwcg8)">Accept this gift!</a>';
                        // will use full domain name for email
                        text2 = link_value_ext + data['clip_id'] + '">' + data['clip_name'] +  '</a>.';
  
                        var url = "/ajax/get_clip.php";
                        url = url+"?clip_id=" + data['clip_id'] + "&youtube_id=g1MTwcg8&recepient_id=" + one_recepients[0];

                        $.ajax({
                            cache: false,
                            url: url,
                            dataType: 'json',
                            async: false,
                            success: function (data) {
                                if (data['status'] == 'ok') {
                                    type = 9; // it is Gift Clip
                                    data['params']['clip_link'] = link_value_ext + link_value_ext2;  

                                    $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                                             data: { REQ_ID: 'SEND_ALERTS', from: $userid, 'to[]': data['params']['recepient_id'], type: type, 'int': buddyListDialog.recommend.id, 'msg1': text1 , 'msg2': data['params'] },
                                             success: function(data) {
                                                 check_for_updates();
                                                 $('.buddy_item .chat_chb_on').click();
                                             },
                                             error: buddyListDialog.requestError
                                           });  
                                    return;
                                } else {
                                    throw 'Gift Clip failed ' + data['message'];
                                }
                            },
                            error: function () {
                                throw 'Gift Clip failed ';
                            }
                        });  
                    }
                    update_goldies();
                    
                    var url = "/ajax/gift_clip.php";
                    url = url+"?state=sent";

                    $.ajax({
                        cache: false,
                        url: url,
                        dataType: 'json',

                        success: function (data) {
                            $("#right-col-box").html(data["message"]);
                        },
                        error: function () {
                            throw 'Gift Clip (sent window) failed ';
                        }
                    });

                } else {
                  if (data['status'] == 'is_not_enought_golds') { // is not enought goldies?
                      $("#right-col-box").html(data["message"]);
                  }
                }
                },
                error: function () {
                    throw 'Gift Clip (send) failed ';
                }
            });
    },

    addToBuddyList: function(userid, username, channel) {
        if(!show_join_box_if_not_logged_in()) {
            return;
        }
        
        if ($("#user_name").html() == username) {
            $("#channel_warning").show();
            $("#channel_warning_inner").html('Sorry, you cannot be buddy for youself');
            scrollTo("#channel_warning");
            return;
        }
  
        // close Alert window
        $('#chatAlerts').hide();
        // close Chat window
        $('#chatDialog').hide();
        $('#chatRemoveBuddyDialog').hide();

        $('#chatToBuddyText').attr('value', '');
        $('#chatToBuddyId').attr('value', userid);
        $('#chatToBuddyName').text(username);
        $('#chatToBuddyCName').text(channel);
        $('#chatToBuddyTitle, #chatToBuddyName, #chatToBuddyCName, #chatToBuddyImg, #chatToBuddyText, #chatToBuddyCancel, #chatToBuddySend').show();
        //$('#chatToBuddyCompleteTitle, #chatToBuddyCompleteClose, #chatToBuddyCompleteInfo').hide();
        $('#chatToBuddyDialog').show();
    },

    removeFromBuddyList: function(userid, username, channel) {

        // close Alert window
        $('#chatAlerts').hide();
        // close Chat window
        $('#chatDialog').hide();
        $('#chatToBuddyDialog').hide();

        $('#chatRemoveBuddyCompleteTitle').hide();

        $('#chatRemoveBuddyId').attr('value', userid);
        $('#chatRemoveBuddyName').text(username);
        $('#chatRemoveBuddyCName').text(channel);
        $('#chatRemoveBuddyTitle, #chatRemoveBuddyName, #chatRemoveBuddyCName, #chatRemoveBuddyImg, #chatRemoveBuddyCancel, #chatRemoveBuddySend').show();
        //$('#chatRemoveBuddyCompleteTitle, #chatRemoveBuddyCompleteClose').hide();
        $('#chatRemoveBuddyDialog').show();

    },

    getSelected: function() {
        var selected = $('div.buddy_list span.chat_chb_on'), to = [];
        selected.each(function() {
            to.push($(this).attr('value'));
        }); return to;
    },

    pushMessages: function(userid) {
        var readMessages = new Array();
        var f = function(userid) {
            var length = buddyListDialog.messages.length;
            for (var i = 0; i < length; i++) {
                if (buddyListDialog.messages[i].userId == userid) {
                    chatDialog.setMessage(buddyListDialog.messages[i], false);
                    readMessages.push(buddyListDialog.messages[i].messId);
                    buddyListDialog.messages.splice(i, 1);
                    arguments.callee(userid);
                    break;
                }
            }
            return;
        } (userid);
        if (readMessages.length > 0) {  
            $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                data: { REQ_ID: 'SET_MSGREAD_MARKER', 'IDs[]': readMessages },
                success: function(data) {
                },
                error: function(xhr, ajaxOptions, thrownError) { alert('jQuery Ajax error! xhr: ' + xhr + '; ajaxOptions: ' + ajaxOptions); }
            });
        }
            this.messagesCount();
    },

    pushAlerts: function() {

        // function for mark Alert as readed
        var setmarker = function(i) {
                $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                         data: { REQ_ID: 'SET_ALERTREAD_MARKER', id: i, is_do_read: '1' },
                         success: function() {

                         },
                         error: chatAlerts.requestError });
        };

        var length = buddyListDialog.alerts.length;
        for (var i = 0; i < (length ); i++) {
            chatAlerts.setAlert(buddyListDialog.alerts[0]);
            // is not readed yet? Will mark as readed
            if (buddyListDialog.alerts[0].floatP == 0) {
                setmarker(buddyListDialog.alerts[0].id);
            }
            buddyListDialog.alerts.splice(0, 1);
        }
        // recalculate Alerts Count
        this.messagesCount();

        $('#chatRemoveBuddyDialog').hide();
        $('#chatToBuddyDialog').hide();

        if (!chatAlerts.open) {
            chatAlerts.openWindow();
        } else {

        }
        return;

    },

    openWindow: function() {
        $('#buddyListDialog').show();
        //$("#buddyListDialog").draggable({ handle: '#buddyListDialog > .chat_dialog_top_sub2', scroll: false });
        $('#buddyListDialog div.buddy_list')
            .slideScroll();

        if (this.BuddyListLoaded == false) {
            this.updateBuddies();
        }

    },
    updateBuddies: function() {
        var selected = buddyListDialog.getSelected();

       $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml', data: { REQ_ID: 'GET_ONLINE_FRIENDS' }, success: function(data) {
               $('#buddyListDialog div.buddy_list').html('');

               $(data).find("user").each(function() {
                       checked = '';
                       for (var i = 0; i < selected.length; i++) {
                           if ($(this).attr('userid') == selected[i]) {
                               checked = 'checked';
                           }
                       }

                       buddyListDialog.setListItem($(this).attr('userid'), $(this).attr('nickname'), $(this).attr('onlinestatus'), checked);
  
               });

               $('#buddyListDialog .buddy_list_loading').css('display', 'none');



               }
        });
    },

    closeWindow: function() { $('#buddyListDialog').hide(); },

    // CR BORIS: status - reserved word (window.status - statusbar)
    setListItem: function(userid, name, status, checked) {
        if ($('#buddyItem' + userid).length != 0) return;
        $('#buddyListDialog div.buddy_list').append(
            $('<span/>')
                .addClass('buddy_item')
                .append(
                    $('<span/>')
                        .attr('value', userid)
                        .css('float', 'none')
                        .append(
                            $('<img/>')
                                .attr('src', '/images/spacer.gif')
                        )
                        .jCheckbox({ on: 'chat_chb_on', off: 'chat_chb_off', checked: checked})
                )
                .append(
                    $('<span/>')
                        .addClass('buddy_item_user status' + status)
                        .append(
                            $('<span/>')
                                .addClass('buddy_item_user_name')
                                .text(name)
                        )
                        .append(
                            $('<span/>')
                                .addClass('buddy_item_user_status')
                                .text(function(status) {
                                    switch (status) {
                                        case 1:
                                            return '(online)';
                                            break;
                                        case 2:
                                            return '(away)';
                                            break;
                                    }
                                } (status))
                        )
                )
                .attr('id', 'buddyItem' + userid)
                .attr('status', status)
        );
        eval("$('#buddyItem' + userid + ' > .buddy_item_user').click(function() { buddyListDialog.pushMessages(" + userid + "); chatDialog.addChatTab('" + name + "', " + userid + "); });");
  
  
        $('#buddyListDialog div.buddy_list')
            .slideScroll();
    },

    setItemStatus: function(userid, status) {
    },

    setMessage: function(item) {
        var d = new Date();
        var t = $(item).attr('date');
        var hms = t.substr(11, 8).split(':');
        var d2 = new Date(d.getFullYear(), d.getMonth(), d.getDate(), hms[0], hms[1], hms[2], 0);
        d2.setTime(d2.getTime() - d.getTimezoneOffset() * 60 * 1000);
        var message = { "messId": $(item).attr('groupid'), "userId": $(item).attr('userid'), "text": $(item).text(), "serverDate": $(item).attr('date'), "localDate": (d2.getHours() < 10 ? "0" + d2.getHours() : d2.getHours()) + ":" + (d2.getMinutes() < 10 ? "0" + d2.getMinutes() : d2.getMinutes()) + ":" + (d2.getSeconds() < 10 ? "0" + d2.getSeconds() : d2.getSeconds()) };
        var openedTab = chatDialog.getActiveTab();
        if (!function(_message) {
            for (var i = 0; i < buddyListDialog.messages.length; i++) {
                if (_message.messId == buddyListDialog.messages[i].messId)
                    return true;
            }
            return false;
        } (message)) {
            if (openedTab != $(item).attr('userid')) this.messages.push(message);
            else {
                chatDialog.setMessage(message, false);
                $.ajax({ type: "POST", url: '/chat/TakeATourByRequest.php', datatype: 'xml',
                    data: { REQ_ID: 'SET_MSGREAD_MARKER', 'IDs[]': [$(item).attr('groupid')] },
                    success: function(data) { },
                    error: function(xhr, ajaxOptions, thrownError) { alert('jQuery Ajax error! xhr: ' + xhr + '; ajaxOptions: ' + ajaxOptions); }
                });
            }
            this.messagesCount();
        }
    },

    setAlert: function(item) {
        // CR BORIS: alert - reseved word
        var alert = function(id, userId, userName, requestName, requestTitle, intP, floatP, stringP, textP, _date) {
            var d = new Date(), date = d.getFullYear() + '-' + setZero(d.getMonth() + 1) + '-' + setZero(d.getDate()) + ' ' + setZero(d.getHours()) + ':' + setZero(d.getMinutes()) + ':' + setZero(d.getSeconds());

            this.id = id;
            this.userId = userId;
            this.userName = userName;
            this.requestName = requestName;
            this.requestTitle = requestTitle;
            this.intP = intP;
            this.floatP = floatP;
            this.stringP = Url.decode(stringP);
            this.textP = Url.decode(textP);
            this.serverDate = _date;
            this.localDate = d;
        };
        $item = $(item);
        var item = new alert($item.attr('id'), $item.attr('userid'), $item.attr('username'), $item.attr('requestname'), $item.attr('requesttitle'), parseInt($('int', $item).text()), parseFloat($('float', $item).text()), $('string', $item).text(), $('text', $item).text(), $($item).attr('date'));


        if (!function(item) {
            for (var i = 0; i < buddyListDialog.alerts.length; i++) {
                if (item.id == buddyListDialog.alerts[i].id)
                    return true;
            }
            return false;
        } (item)) {
            if (chatAlerts.open) chatAlerts.setAlert(item);
            else this.alerts.push(item);
            this.messagesCount();
        }
    },

    messagesCount: function() {
        if (this.messages.length > 0) {
  
            // play sound
            PlaySound('cc_chat_alert');

            $('#buddyListDialog span.buddy_chat_label').show();
            $('#buddy_chat_label').text(this.messages.length);
        } else $('#buddyListDialog span.buddy_chat_label').hide();
        if (this.alerts.length > 0) {
            var is_need_show_count = 0;
            var calculated_count = 0;
            for (var i = 0; i < this.alerts.length; i++) {
                // is still unreaded?
                if (this.alerts[i].floatP == 0) {
                    is_need_show_count = 1;
                    calculated_count = calculated_count + 1;
                }
            }
            if (is_need_show_count == 1) {
                // play sound
                PlaySound('cc_mssg_alert');

                $('#buddyListDialog span.buddy_alerts_label').show();
                $('#buddy_alerts_label').text(calculated_count);
            }
        } else $('#buddyListDialog span.buddy_alerts_label').hide();
    },

    requestError: function(xhr, ajaxOptions, thrownError) {
        alert('jQuery Ajax error! xhr: ' + xhr + '; ajaxOptions: ' + ajaxOptions);
    }
}

var Url = {

    // public method for url encoding
    encode : function (string) {
    return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
    return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
        utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
        }

    }

    return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

        c = utftext.charCodeAt(i);

        if (c < 128) {
        string += String.fromCharCode(c);
        i++;
        }
        else if((c > 191) && (c < 224)) {
        c2 = utftext.charCodeAt(i+1);
        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
        i += 2;
        }
        else {
        c2 = utftext.charCodeAt(i+1);
        c3 = utftext.charCodeAt(i+2);
        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
        i += 3;
        }

    }

    return string;
    }

}

function showAndHideSent() {
  $('.buddy_item .chat_chb_on').click();
  $('#buddy_recomendationsent').show();
  window.setTimeout("$('#buddy_recomendationsent').hide()", 5000);
}


