function InitChooser(paramWidth) {
    $j(".chooser").show();
    $j(".chooser").addClass("dynamic");
    $j(".chooser ul li:last").addClass("last");

    InitPopup();
}

function InitPopup() {
    $j(".chooser > ul > li").each(function() {
        var li = $j(this);
        var a = li.children("a");
        var o = $j("<a class='overlay'></a>");
        o.css({ width: li.width(),
            height: li.height(),
            top: li.position().top + 'px',
            left: li.position().left + 'px',
            marginTop: li.css('margin-top'),
            marginRight: li.css('margin-right'),
            marginLeft: li.css('margin-left'),
            marginBottom: li.css('margin-bottom')
        });
        var b = $j('<div class="bubble png"></div>');
        b.append(li.children(".info"));
        li.append(b);
        o.attr('href', a.attr("href"));
        li.append(o);
    });

    $j(".chooser > ul > li a.overlay").hoverIntent({
        interval: 50,
        sensitivity: 12,
        over: hoverOver,
        timeout: 100,
        out: hoverOut
    });
}

function hoverToggle(li, bIsHovering) {
    var img = $j('.underlay', li);
    var imghover = $j('.underlayhover', li);

    if (bIsHovering) {
        img.hide();
        imghover.show();
    }
    else {
        imghover.hide();
        img.show();
    }
}

function hoverOver(ev) {
    var o = $j(this);
    var li = o.parent();
    var b = li.children(".bubble");

    hoverToggle(li, true);

    var lastOverlay = $j(".chooser > ul > li.hover");
    if (lastOverlay.length > 0) {
        lastOverlay.children(".bubble").hide();
        lastOverlay.removeClass("hover");
        hoverToggle(lastOverlay, false);
    }

    li.addClass("hover");

    b.css({ left: (li.position().left - b.width() + 30) + 'px',
            top: (li.position().top - b.height() + (li.height() / 2)) + 'px'});
    b.show();
}

function hoverOut(ev) {
    var o = $j(this);
    var li = o.parent();
    var b = li.children(".bubble");
    if (li.hasClass("hover")) {
        b.hide();
        li.removeClass("hover");
        hoverToggle(li, false);
    }
}