var oPJIRC;
var sNick = (gDoc.getCookie('irc_nick') ? gDoc.getCookie('irc_nick') : '');

$(window).on('load', function()
{
    oPJIRC = document.pjirc;
    gDoc.get('#controls').style.display = '';

    gDoc.get('#nick').on('change', function()
    {
        while(this.value != this.value.replace(' ', '_'))
        {
            this.value = this.value.replace(' ', '_');
        }
    });

    gDoc.get('#password').on('change', function()
    {
        if(this.value.match(' '))
        {
            while(this.value != this.value.replace(' ', '_'))
            {
                this.value = this.value.replace(' ', '_');
            }

            alert('Warning!\n\nSpaces are not allowed in passwords.\n\nAll spaces in your password will be replaced with an underscore.');
        }
    });

    gDoc.get('#change_nick').on('click', function()
    {
        sNick = gDoc.get('#nick').value;
        oPJIRC.sendString('/nick '+sNick);
        gDoc.setCookie('nick', sNick);
    });

    gDoc.get('#register_nick').on('click', function()
    {
        sNick = sNick = gDoc.get('#nick').value;
        var sPassword = gDoc.get('#password').value;
        sEmail = prompt('Please enter your e-mail address.  This will be used in case you forget your password.').replace(' ', '_');
        if(sEmail)
        {
            oPJIRC.sendString('/nick '+sNick);
            oPJIRC.sendString('/msg NickServ REGISTER '+sPassword+' '+sEmail);
            gDoc.setCookie('nick', sNick);
        }
    });

    gDoc.get('#identify').on('click', function()
    {
        sNick = gDoc.get('#nick').value;
        var sPassword = gDoc.get('#password').value;
        oPJIRC.sendString('/nick '+sNick);
        oPJIRC.sendString('/msg NickServ IDENTIFY '+sPassword);
        gDoc.setCookie('nick', sNick);
    });

    gDoc.get('#logout').on('click', function()
    {
        oPJIRC.sendString('/msg NickServ LOGOUT');
    });

    gDoc.get('#official_channels').on('change', function()
    {
        gDoc.get('#channel').value = gDoc.get('#official_channels').options[gDoc.get('#official_channels').selectedIndex].value;
    });

    gDoc.get('#join_channel').on('click', function()
    {
        oPJIRC.sendString('/join '+gDoc.get('#channel').value);
    });

    gDoc.get('#part_channel').on('click', function()
    {
        var sReason = prompt('Reason for parting:');
        if(sReason != null)
        {
            oPJIRC.sendString('/part '+gDoc.get('#channel').value+' '+sReason);
        }
    });

    gDoc.get('#list_channels').on('click', function()
    {
        oPJIRC.sendString('/list');
    });
});