
if (!INDABA.page.session) { INDABA.page.session = {}; }

/* * *   SESSION NAME - UPDATE    * * * * * * * * * * */

function update_session_names(new_name) {
    $$('.session_name').each(function(el){ el.update(new_name); });
}


/* * *   UPLOADER    * * * * * * * * * * */

INDABA.page.session.uploader = {
    
    adjust_height_to : undefined,
    
    show : function()
    {
        this.clearAdjustTimeout();
        
        Stream.fire("Uploader:displayed");
        hide_comment_form();
        var h = $('session_uploader').down('.uploader').getHeight();
        new Effect.Morph($('session_uploader'), {
            duration: 0.5,
            style: {
                height: h + 'px'
            },
            queue: {
                scope: 'uploader_box',
                position: 'end',
                limit: 1
            },
            afterFinish: function() {
                this.adjust();
            }.bind(this)
        });
    },
    
    hide : function()
    {
        this.clearAdjustTimeout();
        
        new Effect.Morph($('session_uploader'), {
            duration: 0.5,
            style: {
                height: '0px'
            },
            queue: {
                scope: 'uploader_box',
                position: 'end',
                limit: 1
            }
        });
    
    },
    
    isVisible : function()
    {
        return $('session_uploader').getHeight() > 2;
    },
    
    toggle : function()
    {
        if ($('session_uploader').getHeight() < 2) {
            this.show();
        } else {
            this.hide();
        }
    },
    
    clear : function()
    {
        Stream.fire("Uploader:reset");
    },
    
    clearAdjustTimeout: function() {
        if (typeof(this.adjust_height_to) != 'undefined') {
            clearTimeout(this.adjust_height_to);
        }
    },
    
    adjust : function()
    {
        if ($('session_uploader').getHeight() > 100) {
            var h = $('session_uploader').down('.uploader').getHeight();
            var p = parseInt($('session_uploader').down('.uploader').getStyle('marginBottom'))
                  + parseInt($('session_uploader').down('.uploader').getStyle('marginTop'))
                  - parseInt($('session_uploader').down('.uploader').getStyle('paddingBottom'))
                  + parseInt($('session_uploader').down('.uploader').getStyle('paddingTop'))
                  + 5;
    
            if ($('session_uploader').getHeight() != h+p) {
                new Effect.Morph('session_uploader', {style:{height: h + p + 'px'}, duration:0.5, queue:{position:'end', scope:'uploader_adjust_height', limit:1}});
            }
            this.adjust_height_to = setTimeout(function(){ this.adjust(); }.bind(this), 500);
        }
    }
    
};

/* * *   COMMENT FORM    * * * * * * * * * * */

function show_comment_form() {
    INDABA.page.session.uploader.hide();
    INDABA.controls.IndabaSubmitButtons.resetForm( $('session_comment_form').down('form') );
    var h = $('session_comment_form').down('.comment_form').getHeight();
    new Effect.Morph($('session_comment_form'), {
        duration: 0.5,
        style: {
            height: h + 'px'
        },
        queue: {
            scope: 'post_comment_box',
            position: 'end',
            limit: 1
        },
        afterFinish: function() {
            $('message_body').activate();
        }
    });
}

function hide_comment_form() {
    new Effect.Morph($('session_comment_form'), {
        duration: 0.5,
        style: {
            height: '0px'
        },
        queue: {
            scope: 'post_comment_box',
            position: 'end',
            limit: 1
        }
    });
}

function toggle_comment_form() {
    if ($('session_comment_form').getHeight() < 2) {
        show_comment_form();
    } else {
        hide_comment_form();
    }
}


/* * *   BULLETINS    * * * * * * * * * * */

Stream.observe('Bulletin:Create:success', function(data){
    try {
        hide_comment_form();
        $('session_comment_form').down('textarea').clear();
        $('session_comment_errors').update('');
        INDABA.controls.IndabaSubmitButtons.enable( $('session_comment_form').down('.indaba_submit') );
    } catch(e) { INDABA.log(e); }
});

Stream.observe('Bulletin:Create:failure', function(data){
    try {
        data = data.evalJSON();
        $('session_comment_errors').replace((typeof(data.error_content) == 'undefined') ? 'An Error Has Occured' : data.error_content);
        INDABA.controls.IndabaSubmitButtons.enable( $('session_comment_form').down('.indaba_submit') );
    } catch(e) { INDABA.log(e); }
});

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

(function() {

var showHideDetails = function(details) {
    var style = INDABA.util.getComputedStyle(details);

    details = $(details);
    if(INDABA.util.isVisible(details)) {
        var former = (style.display !== "none") ? "was_"+style.display : "";
        details.addClassName(former);
        details.setStyle({
            display:'none'
        });
    }
    else {
        var m = details.className.match(/\bwas_\S+\b/);
        if(m.length > 0) {
            m = m[0];
            var c = m.replace(/was_/,"");
            details.removeClassName(m);
            details.setStyle({
                display:c
            });
        }
    }
};


document.observe('dom:loaded', function(){
    
    if(document.getElementById('bd-session')) {
    
        var eventFeed = new INDABA.controls.EventFeed($('feed'));
    
        var eventFeedFilterDDL = new INDABA.controls.DropDown({
            button : $('feed_filters').select('a.optionsButton')[0],
            options : $('feed_filters').select('div.options')[0]
        });
    
        eventFeedFilterDDL.onChange.addListener(function(e) { 
            try {
                eventFeed.updateFromURI(e.args.ddl.selectedOption.anchor.href,true);
            } catch(e) {}
        });
    
        eventFeedFilterDDL.onChange.addListener(function(e) {
          try {
            $(e.args.ddl.activateButton).select('.currentView')[0].innerHTML = e.args.ddl.selectedOption.anchor.innerHTML;
          } catch(e) {}
        });
        
        /* 
         * anonymous function that changes the currently selected drop down menu item when the filter changes, if the 
         * dropdown menu was not used to change the filter.
         */
        Stream.observe("EventFeedUpdated",function(filter) {
            if (typeof(filter) != 'undefined') {
                eventFeedFilterDDL.options.each(function(option) {
                    if (option.anchor.href.replace(/^.*\?.*filter\=(.*?)\&*.*?/, "$1").match(filter.replace(/\&.*/,''))) {
                        $(eventFeedFilterDDL.activateButton).select('.currentView')[0].innerHTML = option.anchor.innerHTML;
                        eventFeedFilterDDL.selectedOption = option;
                    }
                });
            }
            return new Effect.ScrollTo('content',{duration:0.5});
        });
        
        /* runs in the context of the event feed */
        eventFeed.onLoaded.addListener(function(e) {
            var el = $('session_comment_form').select('form input[name=filter]')[0];
            if(el && typeof this.filter !== "undefined") {
                el.value = this.filter;
            }
        });
        
        INDABA.Page.primaryContainer = "feed";
        INDABA.Page.containerLoaded.addListener(function(e) {
          if(e.args == "feed") {
            eventFeed.rebind();
          }
        });
    }
    
});

})();


open_flash_chart_data = function() {
    return $('chart_data').innerHTML;
};

findSWF = function(movieName) {
  if (navigator.appName.indexOf("Microsoft")!= -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
};