var Communication = 
{

    respondEmote : function(r)
    {
        response = r.responseText.evalJSON(true);

        $("CommunicationMsg").update();
        if (response.success)
        {
            System.status($("CommunicationMsg"), 3);
        }
        else
        {
            System.status($("CommunicationMsg"), 2);
            $("Emote").show();
        }

        $("PhoenixSubmit").show();

        $("CommunicationMsg").insert(response.msg);
    },



    emote : function()
    {
        System.clear($("CommunicationMsg"));
        System.loading($("CommunicationMsg"));
        $("Emote").hide();

        System.ajax(this.href,
        {
            method : "post",
                parameters : { emote : $("EmoteCommand").value },
                onSuccess : Communication.respondEmote
                });
        return false;
    },




    respondIgnore : function(r)
    {
        response = r.responseText.evalJSON(true);

        $("CommunicationMsg").update();


        if (response.success)
        {
            System.status($("CommunicationMsg"), 3);
            if (response.ignore == true)
                $("UnignoreSubmit").show();
            else
                $("IgnoreSubmit").show();
        }
        else
        {
            System.status($("CommunicationMsg"), 2);

        }

        $("CommunicationMsg").insert(response.msg);
    },


    ignore : function()
    {
        System.clear($("CommunicationMsg"));
        System.loading($("CommunicationMsg"));

        $("UnignoreSubmit").hide();
        $("IgnoreSubmit").hide();


        System.ajax(this.href,
        {
            method : "post",
                parameters : { gui : true },
                onSuccess : Communication.respondIgnore
                });
        return false;
    },


    phoenix : function()
    {
        System.clear($("CommunicationMsg"));
        System.loading($("CommunicationMsg"));

        $("PhoenixSubmit").hide();

        System.ajax(this.href,
        {
            method : "post",
                parameters : { count : $F("PhoenixCount")  },
                onSuccess : Communication.respondEmote
                });
        return false;
    },




    rules :
    {
        ".BV_communication_phoenix" : function(element) { element.onclick = Communication.phoenix; },
        ".BV_communication_ignore" : function(element) { element.onclick = Communication.ignore; },
        ".BV_communication_emote" : function(element) { element.onclick = Communication.emote; }
    }




};


var Message = 
{

    respondSend : function(r)
    {
        response = r.responseText.evalJSON(true);

        $("CommunicationMsg").update();
        if (response.success)
        {
            System.status($("CommunicationMsg"), 3);
            var e = $("MessageText");
            e.disabled = "disabled";
            e.style.border = "none";
            e.setOpacity(0.6);
        }
        else
        {
            System.status($("CommunicationMsg"), 2);
            $("MessageSubmit").show();
        }

        $("CommunicationMsg").insert(response.msg);
    },


    send : function()
    {
        System.clear($("CommunicationMsg"));
        System.loading($("CommunicationMsg"));
        $("MessageSubmit").hide();

        System.ajax(this.href,
        {
            method : "post",
                parameters : { message : $("MessageText").value },
                onSuccess : Message.respondSend
                });
        return false;
    },


    respondDiscard : function(r)
    {
        response = r.responseText.evalJSON(true);

        if (response.success)
        {
            $("Message" + response.message).remove();
        }
        else
        {
            System.showOverlayError(response.msg, function() {});
        }
    },


    discard : function()
    {
        System.ajax(this.href,
        {
            method : "post",
                parameters : { gui : true },
                onSuccess : Message.respondDiscard
                });
        return false;
    },




    rules :
    {
        ".BV_message_send" : function(element) { element.onclick = Message.send; },
        ".BV_message_delete" : function(element) { element.onclick = Message.discard; }
    }




};





System.register(Communication.rules);
System.register(Message.rules);
