// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

var fileitem_groups = new Array();

var selected_fileitems = new Array();

function register_fileitem(fileitem_id, group_id){
    var fileitems_array_for_group = fileitem_groups[group_id];
    if (fileitems_array_for_group == null) {
        fileitems_array_for_group = new Array();
        fileitem_groups[group_id] = fileitems_array_for_group;
//        alert("registering "+fileitem_id+" for group "+group_id);
    }
    fileitems_array_for_group.push(document.getElementById(fileitem_id));
    fileitem_groups[group_id] = fileitems_array_for_group;
}

function highlight_fileitem_group(group_id){
//    alert("hightlighting");
    unhighlight_all();
    var fileitems_array_for_group = fileitem_groups[group_id];
    if (fileitems_array_for_group != null) {
        for (var i = 0; i < fileitems_array_for_group.length; i++){
            highlight_fileitem(fileitems_array_for_group[i]);
        }
    }
}

function highlight_fileitem(fileitem) {
//    alert("hightlight fileitem");
    Element.addClassName(fileitem, 'fileitemselected');
    selected_fileitems.push(fileitem);
}

function unhighlight_all(){
//    alert("unhightlight all");
    var old_item = selected_fileitems.pop();
    while (old_item != null) {
        Element.removeClassName(old_item, 'fileitemselected');
        old_item = selected_fileitems.pop();
    }
}

function clear_list(ul_item){
    var li_elements = Element.immediateDescendants(ul_item);
    for (var i = 0; i < li_elements.length; i++){
        filebox = li_elements[i]
        Effect.BlindUp(filebox, {
                scaleFrom: 100,
                afterFinish: function(obj){
                Element.remove(obj.element.id);
            }
        });
    }
    
    // remove progress items
    var progress_items = Element.immediateDescendants('progress_bar')
    for (var i = 0; i < progress_items.length; i++){
        progress_items[i].remove();
    }
    
}

function first_upload_start(){
    Element.show('upload_spinner');
    Element.hide('uploadbox');
    
    Effect.Fade('big_upload_box', {
                afterFinish: function(obj){
                Element.remove(obj.element.id);
            }
    });
    
    Effect.Fade('big_info_box', {
                afterFinish: function(obj){
                Element.remove(obj.element.id);
            }
    });
    
}

function upload_start(){
    Element.show('upload_spinner');
    Element.hide('uploadbox');
}


function infobox_sizeup(obj){
    new Effect.Scale(obj, 150, {scaleX: false, scaleContent : false, duration : 0.1, fps:10});
}

function infobox_sizedown(obj){
    new Effect.Scale(obj, (100/150)*100, {scaleX: false, scaleContent : false, duration : 0.1, fps:10});
}
		