(function($j) {
      $j.fn.roundImage = function() {
            $j(this).each(function(index,domElement) {
                $j(domElement).wrap('<div class="rounded_corner_container"/>');
                $j('<div class="rounded_corner_corner rounded_corner_tl" />\n\
                    <div class="rounded_corner_corner rounded_corner_tr" />\n\
                    <div class="rounded_corner_corner rounded_corner_bl" />\n\
                    <div class="rounded_corner_corner rounded_corner_br" />').insertAfter(this);
            });
      }
})(jQuery);


var chatTools={
    /**
     * AJAX-os lapozóhoz használható függvény. Az element node-ba betölti az url által visszaadott tartalmat
     */
   displayPage: function(element,url,params,callback,ignore_scroll) {
        $j('body').addClass('wait');
        $j('#'+element).load(url,params,function() {
            $j('body').removeClass('wait');
            if (!ignore_scroll) window.scroll(0,$j('#page_content').offset().top);
            if (callback) callback();
        });
    },


    dialogWindow: function(message, options) {
        if (options && options.url) {
            $j.ajax(options.url, {
                success:function(data) {
                    delete options.url;
                    chatTools.dialogWindow(data, options);
                }
            });
            return;
        }
        var option={
            hideTitle:false,
            autoOpen:true,
            modal:true,
            buttons:[
              {
                text:'OK',
                click: function(event,ui) {
                   dialog.dialog("close");
                }
              }
            ],
            close:function(event,ui) {
                dialog.dialog("destroy");
                dialog.remove();
            }
        };
        $j.extend(option, options);
        var dialog=$j("<div />").html(message);
        dialog.dialog(option);
        if (option.hideTitle) $j(".ui-dialog-titlebar", dialog.dialog("widget")).addClass("hide");
        dialog.keyup(function(e){
            if (e.keyCode == 13) {
                $j(e.currentTarget).dialog("widget").find('button:first').trigger('click');
            }
        });
        return dialog;
    },

    alertWindow: function(message, options) {
        var option={
            title:"Figyelem!"
        };
        $j.extend(option, options);
        chatTools.dialogWindow(message, option);
    },

    confirmWindow: function(message, options) {
        var option={
            buttons:[
                {
                    text:'Igen',
                    click: function(event,ui) {
                        $j(this).dialog("close");
                        if (options.confirm) options.confirm();
                    }
                },
                {
                    text:'Nem',
                    click: function(event,ui) {
                        $j(this).dialog("close");
                        if (options.cancel) options.cancel();
                    }
                }
            ]
        };
        $j.extend(option, options);
        chatTools.dialogWindow(message, option);
    },

    promptWindow: function(message, options) {
        var option={
            defaultText:'',
            maxLength:0,
            selectText:true,
            hideTitle:true,
            buttons:[
                {
                    text:'OK',
                    click: function(event,ui) {
                        var txt=$j("input:first",this).val()
                        $j(this).dialog("close");
                        if (options.prompt) {
                            options.prompt(txt);
                        }
                    }
                },
                {
                    text:'Mégsem',
                    click: function(event,ui) {
                        $j(this).dialog("close");
                        if (options.cancel) options.cancel();
                    }
                }
            ]
        };
        $j.extend(option, options);

        var text=$j("<div />").html(message);
        var inputField=$j('<input type="text" />').val(option.defaultText);
        if (option.maxLength>0) inputField.attr("maxlength",option.maxLength);
        text.append(inputField.addClass("ui-dialog-confirm-input").wrap('<div>'));

        chatTools.dialogWindow(text, option);
        if (option.selectText) inputField.focus(function(){this.select();});
        inputField.focus();
    },

    showImageWindow: function(src,options) {
        var option={
            hideTitle: true,
            buttons: [],
            width: 540,
            height: 580
        };
        $j.extend(option, options);
        var img=$j("<div style='text-align: center'><img src='"+src+"' style='cursor:pointer'></div>");
        var d=this.dialogWindow(img, option);
        d.dialog('widget').find('img').click(function() {d.dialog('close');});
    },

    changeAvatar: function() {
        chatTools.dialogWindow('<iframe src="/Image/changeAvatar" style="width:290px;height:185px;border:0px;"></iframe>', {
            title:"Avatar megváltoztatása",
            buttons:  [{
                    text:'Bezár',
                    click: function(event,ui) {
                        $j(this).dialog("close");
                    }
            }],
            resizable: false,
            width: 330,
            height: 300
        });
    },

    refreshAvatarImage: function(new_path) {
        $j('.ownAvatar').attr("src", new_path);
    },

    selectSubMenuItem: function(menu_item_id) {
        $j(".submenu .selected").removeClass("selected");
        $j(".submenu #submenu_"+menu_item_id).addClass("selected");
    },

    getUsername: function(user_id) {
        var cardname=$j('.usercard_'+user_id+' .usercard_name');
        if (cardname.size()>0) return cardname.html();
        return '';
    },

    callbackContact: null,    //Itt tároljuk azt a függvényt, amit a barátjelölések után meg kell hívni

    setContactCallback: function(callback) {
        this.callbackContact=callback;
    },

    /* Barátlista */
    doFriendRequest: function(user_id,username) {
        if (username==null) username=this.getUsername(user_id);
        chatTools.promptWindow("Megjegyzés (nem kötelező megadni):", {
            hideTitle:false,
            title: 'Barátjelölés ['+username+']',
            prompt : function(message) {
                $j.ajax('/Contact/doFriendRequest',{
                    type: 'GET',
                    data:{user_id:user_id,message:message},
                    success: chatTools.processContactResponse
                });
            }
        });
    },

    acceptFriendRequest: function(user_id,username) {
        if (username==null) username=this.getUsername(user_id);
        chatTools.confirmWindow("Valóban elfogadod a barátjelölést?", {
            hideTitle:false,
            title: 'Barátjelölés elfogadása ['+username+']',
            confirm : function() {
                $j.ajax('/Contact/FriendRequest',{
                    type: 'GET',
                    data:{user_id:user_id,answer:'accept'},
                    success: chatTools.processContactResponse
                });
            }
        });
    },

    refuseFriendRequest: function(user_id,username) {
        if (username==null) username=this.getUsername(user_id);
        chatTools.confirmWindow("Valóban visszautasítod a barátjelölést?", {
            hideTitle:false,
            title: 'Barátjelölés visszautasítása ['+username+']',
            confirm : function() {
                $j.ajax('/Contact/FriendRequest',{
                    type: 'GET',
                    data:{user_id:user_id,answer:'refuse'},
                    success: chatTools.processContactResponse
                });
            }
        });
    },

    deleteFriendRequest: function(user_id,username) {
        if (username==null) username=this.getUsername(user_id);
        chatTools.confirmWindow("Valóban visszavonod a barátjelölést?", {
            hideTitle:false,
            title: 'Barátjelölés visszavonása ['+username+']',
            confirm : function() {
                $j.ajax('/Contact/FriendRequest',{
                    type: 'GET',
                    data:{user_id:user_id,answer:'delete'},
                    success: chatTools.processContactResponse
                });
            }
        });
    },
    
    processContactResponse: function(data)  {
        if (data.info) chatTools.alertWindow(data.info);
        if (data.alert) chatTools.alertWindow(data.alert);
        if (data.user_id && data.card) {
            $j('.usercard_'+data.user_id).replaceWith(data.card);
        }
        if (chatTools.callbackContact) chatTools.callbackContact(data);
    },


    deleteFriend: function(user_id,username) {
        if (username==null) username=this.getUsername(user_id);
        chatTools.confirmWindow("Valóban törölni szeretnéd a barátságot?", {
            hideTitle:false,
            title: 'Barátság törlése ['+username+']',
            confirm : function() {
                $j.ajax('/Contact/deleteFriend',{
                    type: 'GET',
                    data:{user_id:user_id},
                    success: chatTools.processContactResponse
                });
            }
        });
    },

    addFavourite: function(user_id,username) {
        $j.ajax('/Contact/addFavourite',{
            type: 'GET',
            data:{user_id:user_id},
            success: chatTools.processContactResponse
        });
    },

    deleteFavourite: function(user_id,username) {
        $j.ajax('/Contact/deleteFavourite',{
            type: 'GET',
            data:{user_id:user_id},
            success: chatTools.processContactResponse
        });
    },

    addIgnore: function(user_id,username) {
        $j.ajax('/Contact/addIgnore',{
            type: 'GET',
            data:{user_id:user_id},
            success: chatTools.processContactResponse
        });
    },

    deleteIgnore: function(user_id,username) {
        $j.ajax('/Contact/deleteIgnore',{
            type: 'GET',
            data:{user_id:user_id},
            success: chatTools.processContactResponse
        });
    },

    sendMail: function($user_id) {
        location.href="/Mail/new?user_id="+$user_id;
    },

    client_window: null,

    startClient: function() {
        var appletw=780;
        var appleth=650;
        if (screen.width<appletw) appletw=screen.width;
        var appletx=(screen.width-appletw)/2;
        var applety=(screen.height-appleth)/2;

        client_window = window.open('/client_start','chathuclient',"location=no,toolbar=no,resizable=yes,status=no,menubar=no,scrollbars=no,width="+appletw+",height="+appleth+",left="+appletx+",top="+applety);
    }

}

function startRegisteredClient()
{
    $j.get('/User/axgettermaccept',null,function(data)
    {
        if (data==1) chatTools.startClient();
        else
        {
            chatTools.dialogWindow('<div>A Chat.hu Adatvédelmi szabályzata módosítva lett.</div><div>Ezt az alábbi linken érheted el:</div><br><div><a style="color:#4AA1E0;" href="/adatvedelem" target="_blank">http://chat.hu/adatvedelem</a></div><br><br><div>A továbblépéshez el kell fogadnod!</div><br><br><div style="text-align:center;">Elfogadod?<div>', {
                title:"Módosult Chat.hu szabályzatok",
                buttons:  [{
                        text:'Igen',
                        click: function(event,ui) {
                            $j(this).dialog("close");
                            $j.get('/User/axsettermaccept',null,function(data)
                            {
                                chatTools.startClient();
                                $j("#chat_new_policy").remove();
                            });
                        }
                },
                {
                        text:'Nem',
                        click: function(event,ui) {
                            $j(this).dialog("close");
                            location.href='/';
                        }
                }],
                resizable: false,
                width: 330,
                height: 330
            });


            /*
            if (confirm('Elfogadod a szabályzat pontjait?'))
            {
                $j.get('/User/axsettermaccept',null,function(data)
                {
                    chatTools.startClient();
                });
            }
            */
        }
    });
}
