<?php /*

  We are retiring sets. Sorry everyone, no more sets for you. 20120207

window.addEvent('domready', function(){

    if($defined($('save-title-desc'))){
        var set_id = $('set-id').value;
        $('save-title-desc').addEvent('click', function(){
            var args = {
               'set_id': $('set-id').value,
               'title': $('set-title').value,
               'desc': $('set-desc').value,
               'action': 'save_set_title_desc'
            }
            new Request.JSON({url: '/community/posse/ajax/save_slide.php', secure:false, onComplete: function(result){
                if(result.success == 'true'){
                    $('set-desc').set('value', result.msg.replace(/\\(['"])/g, '$1'));
                    var tm = new Date().format('%X');
                    $('action-msg').set('html', 'saved at '+tm);
                    var morphius = new Fx.Morph($('action-msg')).set({'opacity': 0});
                    morphius.start({'opacity': 0.75});
                    var hide_func = function(){
                        morphius.start({'opacity': 0});
                    }.delay(10000);
                }
            }}).get(args);
        });
    }

    if($defined($('set-desc'))){
        var tr = new TextAreaResizer({
            'element': 'set-desc'
        });
    }
  
});

var SortableDraggables = new Class({

    Implements: [Events, Options],
    Extends: Sortables, 

    options: {
    },

    current_droppable: null,
    start_state: '',

    initialize: function(list, objects, options){
        this.setOptions(options); 
        this.drop_objs = objects;
        this.parent(list, objects);
    },

    getDroppables: function(){
        var droppables = this.list.getChildren().concat(this.drop_objs);
        if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list);
        return droppables.erase(this.clone).erase(this.element);
    },

    start: function(event, element){
        this.start_state = this.serialize();
        this.parent(event, element);
        this.drag.addEvent('leave', function(){
            if($chk(this.current_droppable)){
                if(this.current_droppable.getStyle('background-color') == '#38dbff'){
                    this.current_droppable.setStyle('background-color', 'white');
                    this.current_droppable = null;
                }
            }
        }.bind(this));
    },

    insert: function(dragging, element){
        if(element.get('tag') != 'li'){
            element.setStyle('background-color', '#38dbff');
            this.current_droppable = element;
        }else{
            var where = 'inside';
            if (this.lists.contains(element)){
                this.list = element;
                this.drag.droppables = this.getDroppables();
            } else {
                where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';
            }
            this.element.inject(element, where);
            this.fireEvent('sort', [this.element, this.clone]);
        }
    },

    end: function(){
        if(this.current_droppable != null){
            var end_state = this.serialize().filter(function(el){if(el) return true; else return false; });
            var start_state = this.start_state;
            var m = start_state.map(function(el){
                return end_state.indexOf(el); 
            }, this);
            this.rearrange(m);
            this.fireEvent('droppage', [this.current_droppable, this.element]);
            this.current_droppable = null;
        }
        this.parent();
    },

    rearrange: function(newOrder){
        newOrder = newOrder || this.currentOrder;
        var rearranged = [];
        var list_items = this.list.getChildren('li[id^=slide]');
        newOrder.each(function(index){
            rearranged.push(list_items[index].inject(this.list));
        }, this);
        this.list = $$(rearranged);
        return this;
    }

});

function favorite_set(action, set_id, user_id){
    var args = {
        'action': action,
        'set_id': set_id,
        'user_id': user_id
    }
    var new_action = "javascript:favorite_set('";
    if(action == 'favorite-set'){
        new_action = new_action + "unfavorite-set";
    } else {
        new_action = new_action + "favorite-set";
    }
    new_action = new_action + "', " + set_id + ", " + user_id + ");";
    var r = new Request.JSON({url: '/community/posse/ajax/save_slide.php', secure:false, onComplete: function(result){
        if(result.success == 'true'){
            if($('favlink').get('html') == 'Favorite this set'){
                $('favimg').set('src', '/images/icons/famfamfam_silk/heart.png');
                $('favlink').set('html', '<em>In My Favorites</em>');
            }else{
                $('favimg').set('src', '/images/icons/famfamfam_silk/heart_add.png');
                $('favlink').set('html', 'Favorite this set');
            }
            $('favlink').set('onclick', new_action);
        }
    }}).get(args);
}

function delete_set(set_id, set_title){
    if(confirm('Are you sure you want to delete the set "'+set_title+'"?')){
        var args = {
            'action': 'delete-set',
            'set_id': set_id
        }
        var r = new Request.JSON({url: '/community/posse/ajax/save_slide.php', secure:false, onComplete: function(result){
            if(result.success == 'true'){
                var sname = $('screen-name').value;
                document.location = '/community/posse/profiles/'+sname+'/sets';
            }
        }}).get(args);
    }
}

function delete_slide(slide_id, slide_name){
    if(confirm('Are you sure you want to delete this slide?')){
        var args = {
            id: slide_id
        }
        var r = new Request.JSON({url: '/community/posse/ajax/delete_slide.php', secure:false, onComplete: function(result){
            if(result.success == 'true'){
                var slide = $('slide:'+slide_id);
                var slide_fx = new Fx.Slide(slide).slideOut().chain(function(){
                    var p = slide_fx.element.getParent();
                    p.setStyle('display', 'none');
                });
            }
        }}).get(args);
    }
}

function edit_slide(slide_id){
    MOOdalBox.open('/community/posse/ajax/slide-edit-dialog.php?id='+slide_id, '', '700 600');
}

function initialize_slides(){

    $$('.image-select-box').each(function(isb){
        isb.addEvent('click', function(){
            $$('.image-select-box').each(function(b){
                b.set('html', '<img src="/images/icons/famfamfam_silk/wand.png" alt="highlight" title="Make this slide the set highlight"/>');
            });
            isb.set('html', '<img src="/images/icons/famfamfam_silk/photo.png" alt="highlighted" title="This slide is the set highlight" style="margin-top:3px;margin-bottom:-3px;"/>');
            var slide_id = isb.getProperty('id').replace(/[^:]+:(\d+)/, '$1');
            var args = {
                'set_id': $('set-id').value,
                'slide_id': slide_id,
                'action': 'select-image'
            }
            new Request.JSON({url: '/community/posse/ajax/save_slide.php', secure:false, onComplete: function(result){
                if(result.success == 'true'){
                    $('set-image').set('src', $('slide-image:'+slide_id).get('src'));
                }
            }}).get(args);
        });
    });

    var mySortables = new SortableDraggables('slide-list', $$('.edit-set-box'), {
        constrain: false,
        revert: { duration: 500, transition: 'elastic:out' },
        handle: '.slide-edit-handle',
        clone: true,
        opacity: 0.75,
        onComplete: function(e){
            var args = {
                serialization: mySortables.serialize()
            }
            var r = new Request.JSON({url: '/community/posse/ajax/reorder_slides.php', secure:false, onComplete: function(result){
                if(result.success != 'true'){
                    alert('reorder failed!');
                }
            }}).get(args);
        },
        onDroppage: function(set_object, slide_object){
            set_object.setStyle('background-color', 'white');
            var args = {
                'action': 'add-slide-to-set',
                'slide_id': slide_object.get('id').replace(/slide:(\d+)/, '$1'),
                'set_id': set_object.get('id').replace(/set-box:(\d+)/, '$1')
            };
            new Request.JSON({url: '/community/posse/ajax/save_slide.php', secure:false, onSuccess: function(result){
                var tm = new Date().format('%X');
                $('action-msg').set('html', 'slide copied to another set at '+tm);
                var morphius = new Fx.Morph($('action-msg')).set({'opacity': 0});
                morphius.start({'opacity': 0.75});
                var hide_func = function(){
                    morphius.start({'opacity': 0});
                }.delay(10000);
            }}).get(args);
        }

    });

}

*/ ?>

