function active_background(el)
{
    var e=$(el);    
    var bg=e.getStyle('backgroundColor');
    if (bg != 'transparent') return bg;
    e = e.ancestors().
        detect(function(each)
            {return each.getStyle('backgroundColor')!= 'transparent'; }
                );
    if(e==undefined) return 'transparent';
    return e.getStyle('backgroundColor');
    
}


function display_with_details(element)
{
    var getTopListPos=function(e)
        {
          var first =  Element.previousSiblings(e).last();
          if(first==undefined) return undefined;
          return first.positionedOffset();
        }
    
    var a_bg=active_background(element);
    var firstpos = getTopListPos(element);
    
    var current_x = $(element).positionedOffset()[0];
    /* Because of the bug in IE 6/7 firstpos[0] could be wrong
     *  
     */
    var siblings=$A($(element).siblings());
    var full=$(element).down(".full").clone(true);
    var saved_short=$(element).replace(full);
    full.store('saved-short-element',saved_short);
    full.store('saved-bg', a_bg);
   
    full.show();
    element=full;

    siblings.each(function(each){each.hide();});    
    $(element).absolutize();
    if(firstpos != undefined) /*we are already the first!*/
    {
    $(element).store('saved-position', $(element).positionedOffset());
    var left=Math.min(current_x,firstpos[0]); /* IE workaround*/
    var left_str=left.toString() + 'px';
    var top_str = firstpos[1].toString() +'px';   
    
    $(element).setStyle({ 'left': left_str, 'top': top_str});
    }
    /* $(element).setStyle({ width: 'auto'}); */
    
}


function restore_original_display(element)
{
    var to=$(element).retrieve('saved-position');
    var old_bg=$(element).retrieve('saved-bg');
    var short_el=$(element).retrieve('saved-short-element');
    var siblings=$(element).siblings();
    var reappearSiblingsAndMove = function() {
        return siblings.
         collect(function(e){return new Effect.BlindDown(e);});}
    

    var showShort=function()
    {
       $(element).replace(short_el);
       
    }
    
    showShort();
    $A(siblings).each(function(each){each.show();});
}
        
