
var view_all_item;
var current_menu;

Event.observe(window, 'load', function() {

  try{
    related_items_to_display;
  }catch(e){
    return;
  }

  var related_topics_list = $$('#related-topics ul');
  var related_topics_items = $$('#related-topics li.item');
  var number_items = 0;
  var last_item;

  related_topics_items.each(function(item,index){
    number_items++;
    last_item = item;
    if(index >= related_items_to_display){
      item.addClassName('hidden');
    }

    Event.observe($(item.getElementsByTagName('A')[0]), 'mouseover', function(event) {

      var item = Event.element(event);
      var menu = $(item.parentNode).getElementsBySelector('ul')[0];

      if(current_menu != null){
        current_menu.removeClassName('visible');
        current_menu = null;
      }
      current_menu = menu;
      menu.addClassName('visible');
      Position.absolutize(menu);

      Position.clone(item, menu, {setLeft: true, setTop: true, setWidth: false, setHeight: false, offsetLeft: -5, offsetTop: 1});



      prev_item = $('related-topic-item-hover');
      if(prev_item){
        prev_item.remove();
      }
      new Insertion.After(menu, '<div id="related-topic-item-hover" class="related-topic-item-hover"><a href="' + item.href + '">' + item.innerHTML + '</a></div>');
      Position.absolutize($('related-topic-item-hover'));
      Position.clone(item, $('related-topic-item-hover'), {setLeft: true, setTop: true, setWidth: true, setHeight: true, offsetLeft: -5, offsetTop: -3});

      var menu_right = parseInt(menu.style.left) + menu.getWidth();
      if(menu_right > 640){
				menu.setStyle({left: (parseInt(menu.style.left) - menu.getWidth() + $('related-topic-item-hover').getWidth()) + 'px'});
      }

      Event.observe(menu, 'mouseout', function(event) {
        var menu = Event.element(event);
        if(!(Position.within(menu, Event.pointerX(event), Event.pointerY(event)))){
					if(menu.tagName == 'UL'){
            menu.removeClassName('visible');
						prev_item = $('related-topic-item-hover');
            if(prev_item){
							prev_item.remove();
            }
					}
        }
      });
    });

  });

  if(number_items > related_items_to_display){
    new Insertion.After(last_item, '<li id="related-topics-show-all">...show all</li>');

    Event.observe($('related-topics-show-all'), 'click', function() {
      var related_topics_items = $$('#related-topics li');
      related_topics_items.each(function(item){
        item.removeClassName('hidden');
      });
      $('related-topics-show-all').hide();
    });

  }

});

