(function($){

  var popup = false;

  $.fn.tlList = function(options)
  {
    this.each(
      function()
      {
        var me = $(this);
        me.click(function(){return showlist(me, options);});
      }
    );
    return this;
  };


  function showlist(me, options)
  {
    if (popup)
      popup.remove();

    popup = $('<div class="csukJs_Widget_Popup"/>');
    var offset = me.offset();

    popup.css('display', 'none');
    popup.css('position', 'absolute');
    popup.css('top', (offset.top) + 'px');
    popup.css('left', (offset.left) + 'px');

    $('body').append(popup);
    popup.append($('<a class="jqmClose csukJs_Widget_Popup_CloseLink">close</a>'));

    var qs = $('<div/>');
    popup.append(qs);

    qs.append($('<img alt="" class="titleicon" />').attr("src", options.icon));
    qs.append($('<h4 style="margin-top: 0;"/>').append(options.title));

    var ul = $('<ul/>');
    qs.append(ul);
    for (var i=0; i<options.list.length; i++)
    {
      var li = $('<li/>');
      ul.append(li);

      var span = $('<span/>');
      if (options.list[i].href)
      {
        var a = $('<a/>').attr("href", options.list[i].href);
        li.append(a);
        a.append(span);
      }
      else
      {
        li.append(span);
      }

      if (options.list[i].title)
        span.attr("title",  options.list[i].title);

      if (options.list[i].links)
      {
        for (var j=0; j<options.list[i].links.length; ++j)
        {
          li.append(" (");
          li.append(
            $('<a target="_blank"/>')
              .attr("href", options.list[i].links[j].href)
              .append(options.list[i].links[j].text)
          );
          li.append(")");
        }
      }

      span.text(options.list[i].text);
    }

    popup.jqm(
      {
        onShow: function(h)
        {
          h.w.css("opacity", 0.92).fadeIn();
        },
        onHide: function(h)
        {
          h.w.fadeOut("slow", function() { if(h.o) h.o.remove(); });
        }
      }
    );
    popup.jqmShow();
    return false;
  };

})(jQuery);
