
function save_inline(button, processing, input, content, data, callback){
    $(button).hide();
    $(processing).show();
    if(input){
        data.value = $(input).value;
    }
    new Ajax.Request('ajax/profile_inline_edit.php', {
        method: "post",
        parameters: data,
        onSuccess: function(transport){
            if(transport.responseJSON.content){
                $(content).innerHTML = transport.responseJSON.content;
                execJS($(content));
                if(window.tag_selectors[callback]){
                    window.tag_selectors[callback]();
                }
            }else{
                $(processing).hide();
                $(button).show();
            }
        }
    });
}

status_user_value = false;

function save_inline_status(){
    if(!status_user_value){
        $('inline-status-input').value = '';
    }
    if($('inline-status-input').value == ''){
        status_user_value = false;
    }
    save_inline('inline-status-save', 'inline-status-processing', 'inline-status-input',
        'inline-status', {property: 'status'});
}

function focus_inline_status(input, value){
    if(input.value == value){
        input.value = '';
        input.style.color = '#000';
        input.style.fontStyle = 'normal';
        status_user_value = true;
    }
}
function blur_inline_status(input, value){
    if(input.value == ''){
        input.value = value;
        input.style.color = '#999';
        input.style.fontStyle = 'italic';
        status_user_value = false;
    }
}

function save_inline_tags(aspect){
    data = {property: 'tags', aspect: aspect};
    input_name = 'tags_user_'+aspect+'[]';
    data[input_name] = new Array();
    inputs = document.getElementsByName(input_name);
    for(i=0;i<inputs.length;i++){
        data[input_name].push(inputs[i].value);
    }
    save_inline('inline-tags-save-'+aspect, 'inline-tags-processing-'+aspect,
        false, 'profile-tags-'+aspect, data, 'ac_tags_user_'+aspect);
}

function save_inline_aboutme(){
    save_inline('inline-aboutme-save', 'inline-aboutme-processing', 'inline-aboutme-input',
        'profile-aboutme', {property: 'about_me'});
}

function addMusicPlayer(el, type) {
    switch(type) {
        case 'imeem':
            $('music-player-processing').show();
            new Ajax.Request('ajax/music_player.php', {
                method: "post",
                parameters: $(el).up('form').serialize(), 
                onSuccess: function(transport) {
                    var content = transport.responseJSON.content;
                    var errors = transport.responseJSON.errors;
                    if(errors && errors.length) {
                        $('music-player-processing').hide();
                        errors.each(function(error) {
                            if($('music-player-errors')) {
                                var div = $('music-player-errors');
                                div.update(error);
                            } else {
                                var div = E('DIV');
                                div.id = 'music-player-errors';
                                div.setStyle('color: red');
                                div.update(error);
                                $('music-player-notif').appendChild(div);
                            }
                        });
                    } else if(content && content.length) {
                        if($('music-player-errors')) {
                            $('music-player-errors').hide();
                        }
                        switch(type) {
                            case 'imeem':
                                $('music-player-processing').hide();
                                var playlists = '<br/><b>' + content.length + ' iMeem Playlists found!</b><ul>';
                                content.each(function(item) {
                                    playlists += '<li>';
                                    playlists += item['title'];
                                    playlists += ' <a href="#" class="button auto-add" onclick="return addImeemPlayer(\'' + item['id'] + '\');">';
                                    playlists += '<img src="images/clear.gif"></a></li>';
                                });
                                playlists += '</ul>';
                                $$('.widget.add-' + type)[0].update(playlists);
                                break;
                        }
                    }
                }
            });
            break;
        case 'embed':
            break;
    }
    return false;
}

function addImeemPlayer(id) {
    $('music-player-processing').show();
    $('musicplayer-body').value = '[[imeem|' + id + ']]';
    $('musicplayer-body').up('form').submit();
    return false;
}

function showHideMusicPlayers(which) {
    $$('.widget').invoke('hide');
    $$('.widget.' + which).invoke('show');
}

function shareMeBox() {
    var popup = new Popup(530, null, 'share_mebox_popup png');

    var popuphtml = $('share_mebox_popup_content').innerHTML;
    var div = E('DIV');
    div.update(popuphtml);
    $('share_mebox_popup_content').update('');

    popup.setContent(div);
    popup.show();

    var friends_s = new FriendSelector(true);
    $('mebox_share_friends_input').appendChild(friends_s.getElement());

    buildMeBoxShareCode(); // initialize code

    // observe the various radio buttons to see if they are clicked
    // so we can update the code we give the user
    $$('.share-mebox-where .where_radio').invoke('obs', 'click', changeMeBoxShare);
    $$('.share-mebox.size .size_radio').invoke('obs', 'click', buildMeBoxShareCode);
    $$('.share-mebox.myspace-where .myspace_radio').invoke('obs', 'click', buildMeBoxShareCode);
    $('share_mebox_popup_close').onclick = function() {
        popup.close();
        $('share_mebox_popup_content').update(popuphtml);
        return false;
    };

    return false;
}

function changeMeBoxShare(event) {
    var rad = event.element();
    $$('.share-mebox').invoke('hide');
    switch(rad.value) {
        case 'myspace':
            $$('.share-mebox.myspace-where').invoke('show');
        case 'other':
            $$('.share-mebox.size').invoke('show');
            $$('.share-mebox.code').invoke('show');

            var index = 1;
            $('mebox_share_form').select('li.share-mebox').each(function(el) {
                if (el.visible()) el.down('.index').innerHTML = (index++) + '. ';
            });
            buildMeBoxShareCode();
            break;
        case 'fb':
            $$('.share-mebox.facebook').invoke('show');
            break;
        case 'going':
            $$('.share-mebox.going').invoke('show');
            break;
    }
}

function buildMeBoxShareCode() {
    new Ajax.Request('ajax/mebox_code.php', {
        method: "post",
        parameters: $('mebox_share_form').serialize(true), 
        onSuccess: function(transport) {
            var content = transport.responseJSON.content;
            if(content && content.length) {
                // update text field with code
                $('share-mebox-code-field').value = content[0];
            }
        }
    });
}
