dojo.addOnLoad( function() { process_toggle_contacts() } );

function process_toggle_contacts( containers ) {
    var buttons = dojo.html.getElementsByClass('networking_toggle_contact_button');
    
    for ( var i in buttons ) {
        var button = buttons[i];
        if ( dojo.html.hasClass( button, 'networking_toggle_contact_button_processed' ) ) continue;
        dojo.html.addClass( button, 'networking_toggle_contact_button_processed' );
        
        var bclass = dojo.html.getClass( button );
        if ( ! bclass ) continue;
        var parts = bclass.match(/(^| )networking_toggle_contact_button_(\d+)( |$)/);
        if ( ! parts || ! parts[2] ) continue;
        
        var user_id = parts[2];
        attach_toggle_contact( button, user_id );
    }
}

function attach_toggle_contact( button, user_id ) {
    dojo.event.connect( button, 'onclick', function( evt ) {
        evt.preventDefault();
        dojo.io.bind({
            url: button.href,
            mimetype: "text/json",
            method: 'POST',
            content : {},
            load: function(type, data, evt) {
                var containers = dojo.html.getElementsByClass(
                    'networking_toggle_contact_container_' + user_id
                );
                for ( var i in containers ) {
                   containers[i].innerHTML = data.new_html;
                }
                process_toggle_contacts();
            },
            error: function(type, error) {
                alert('Error while managing contacts. Please try again.');
            }
        });
    } );
}