var SendInvites = {
    container: null,
    buddies: null,
    emails: null,
    personalMessage: null,    
    checkAll: null,
    charCount: null,
    maxchars: 300,
    
    load: function()
    {
        SendInvites.container = $('container');
        new Ajax(
            promoConfig.FILTER_PAGE, 
            {
                data: Object.toQueryString({
                    mode: 'SEND_INVITES_INDEX'
                }),
                method: 'post',
                update: SendInvites.container,
                onComplete: SendInvites.init
            }
        ).request();
    },
    
    init: function()
    {
        SendInvites.checkAll = $('check-all-checkbox');
        SendInvites.buddies = $$('.buddy-checkboxes');
        SendInvites.emails = $('emails');
        SendInvites.charCount = $('char-count');
        SendInvites.personalMessage = $('personal_message');
        
        if ( $('send-invite') )
        {
            $('send-invite').addEvent('click', function() {
                SendInvites.send();
            });
        }
        
        if ( SendInvites.checkAll )
        {
            SendInvites.checkAll.addEvent('click', function(){
                SendInvites.toggleChecks();
            });
        }
        
        if ( SendInvites.personalMessage )
        {
            SendInvites.personalMessage.addEvent('keyup', function(){
                var max = SendInvites.maxchars;
                
                var count = SendInvites.maxchars - SendInvites.personalMessage.value.length;                
                
                if (0 > count)
                {
                    var txt = SendInvites.personalMessage.value;
                    SendInvites.personalMessage.value = txt.substr(0, max);
                    count = 0;
                } 
                
                SendInvites.charCount.innerHTML = count + ' characters left.';
            });
        }
    },
    
    showLoading: function()
    {
        SendInvites.container.innerHMTL = '<p>LOADING...</p>';
    },
    
    send: function()
    {
        var email_list = [];
        var emails = SendInvites.emails.value.split(",");        
        
        SendInvites.buddies.each(function(el) {
            if ( el.checked )
            {
                email_list.push(el.getProperty('name').trim());
            }
        });
        
        for ( var i = 0; i < emails.length; i++ )
        {
            if ( '' != emails[i].trim() )
                email_list.push(emails[i].trim());
        }
        
        var post_data = {};
        post_data['mode'] = 'SEND_EMAIL_INVITES';
        post_data['message'] = SendInvites.personalMessage.value;
        for ( var i = 0; i < email_list.length; i++ )
        {
            post_data['emails[' + i + ']'] = email_list[i];
        }        
        
        new Ajax(
            promoConfig.FILTER_PAGE, 
            {
                data: Object.toQueryString(post_data),
                method: 'post',
                update: SendInvites.container,
                onComplete: SendInvites.init
            }
        ).request();
    },
    
    toggleChecks: function()
    {
        SendInvites.buddies.each(function(el) {
            el.checked = SendInvites.checkAll.checked;
        });
    }
};

SendInvites.load();