$.widget( "ui.selectbox", {
    _create : function () {
        var self = this.element;
        var button = $("<a href='#'>"+self.children(":selected").text()+"</a>");
        var selectBox = $("<ul class=\""+self.attr("class")+" ui-menu ui-widget ui-widget-content ui-corner-all\">").hide();

        button.attr({
            'class':'ui-callendar-pick'
        });

        selectBox.blur(function () {
                $(this).hide();
                button.blur();
            })
            .appendTo("body");

        self.children("option").each(function () {
            var val = $(this).val();
            var text = $(this).text();
            selectBox.append(
                $("<li class='ui-menu-item'></li>").append($("<a>"+text+"</a>").hover(function () {
                        $(this).addClass("ui-state-hover");
                        $(this).attr("id", "ui-active-menuitem");
                    }, function () {
                        $(this).removeClass("ui-state-hover");
                        $(this).attr("id", "");
                    }).click(function () {
                        self.val(val);
                        self.change();
                        selectBox.blur();
                    })
                )
            );
        });

        button.click(function () {
            selectBox.css({
                "position" : "absolute",
                "display" : "none",
                "top" : button.offset().top + (button.height() / 2) - (selectBox.height() / 2),
                "left" : button.offset().left + (button.width() / 2) - (selectBox.width() / 2)
            }).show().focus();
            return false;
        });
        self.after(button);
        self.hide();
        $(document).click(function (e) {
            if (e.target != button[0]) {
                selectBox.blur();
            }
        });
    }
});

$(document).ready(function () {
    var d = $("<div>");
    $("#jCalendar").find("tbody").find(".jCalendarEventDay").click(function () {
        var url = $(this).attr("href").replace(/\.html/, '.ajax');
        d.dialog("destroy");
        d.dialog({
            width : 470,
            modal : false,
            resizable : false,
            title : $(this).parent("td").attr("title"),
            open : function () {
                d.load(url);
            },
            close : function () {
                d.dialog("destroy");
                d.remove();
            }
        }).css("overflow", "hidden");
        return false;
    });

    $("#callMonthSelector").selectbox();
});
