var advanceSearch =
{
    _categories: new Array(),
    _platforms: new Array(),

    show: function()
    {
        var thisObj = this;

        if (this._categories.length == 0 || this._platforms.length == 0)
        {
            $.ja.ajax("/ajax/search/getadvanceserachoptions", null, function(o)
            {
                thisObj._categories = o.categories;
                thisObj._platforms = o.platforms;

                buildDialog();
            });
        }
        else
        {
            buildDialog();
        }

        function buildDialog()
        {
            var categories = "<option value='0'>Any Category</option>";
            var platforms = "<option value='0'>Any Platform</option>";

            for (var i = 0; i < thisObj._categories.length; i++)
            {
                if (thisObj._categories[i].parentId == 0)
                {
                    categories += "<option value='{0}'>{1}</option>".format(thisObj._categories[i].id, thisObj._categories[i].name);
                    for (var j = 0; j < thisObj._categories.length; j++)
                    {
                        if (thisObj._categories[j].parentId == thisObj._categories[i].id)
                            categories += "<option value='{0}' class='padding-left-normal'>{1}</option>".format(thisObj._categories[j].id, thisObj._categories[j].name);
                    }
                }
            }

            for (var i = 0; i < thisObj._platforms.length; i++)
            {
                platforms += "<option value='{0}'>{1}</option>".format(thisObj._platforms[i].id, thisObj._platforms[i].name);
            }

            var dialog = $("<div id='advance-search-panel'>" +
                            "<h2>Search Options</h2>" +
                            "<form action='' method='post' onsubmit='advanceSearch.save(this);return false;'>" +
                                "<div>" +
                                    "<div class='float-left padding-top-small padding-bottom-small' style='width:60%;border-right:solid #333 1px;'>" +
                                        "<b>Search within:</b>" +

                                        "<div class='margin-top-small margin-bottom-small'><select style='width:300px;'>" + categories + "</select></div>" +
                                        "<select style='width:300px;'>" + platforms + "</select>" +
                                    "</div>" +
                                    "<div class='float-left padding-left-normal padding-top-small padding-bottom-small'>" +
                                        "<div><label><input type='checkbox' value='1' /> Full Time</label></div>" +
                                        "<div><label><input type='checkbox' value='1' /> Part Time</label></div>" +
                                        "<div><label><input type='checkbox' value='1' /> Contracting</label></div>" +
                                        "<div><label><input type='checkbox' value='1' /> Telecommute</label></div>" +
                                    "</div>" +
                                    "<div class='clear-both margin-bottom-normal'></div>" +
                                "</div>" +
                                "<div style='text-align:center;'>" +
                                    "<a href='javascript:;' onclick='advanceSearch.hide();'>Cancel</a>" +
                                    "&nbsp; | &nbsp;" +
                                    "<input type='submit' value='Save' />" +
                                "</div>" +
                            "</form>" +
                        "</div>");
            var overlay = $("<div class='ui-widget-overlay' style='width:100%;'/>");

            var att = $("input[id='att'][type='hidden']:first").val().split(',');

            dialog.find("input[type='checkbox']").each(function(i)
            {
                if (att.length < 4 || att[i] == "1")
                    $(this).attr("checked", "checked");
            });

            dialog.find("select:first").val($("input[id='ca'][type='hidden']:first").val());
            dialog.find("select:last").val($("input[id='pl'][type='hidden']:first").val());

            $("body").append(overlay);
            $("body").append(dialog);

            $(window).bind("resize", thisObj._resizeEvent);
            $(window).trigger("resize");
        }
    },

    hide: function()
    {
        $("#advance-search-panel").remove();
        $(".ui-widget-overlay").remove();

        $(window).unbind("resize", this._resizeEvent);
    },

    save: function(form)
    {
        form = $(form);

        $("input[id='ca'][type='hidden']:first").val(form.find("select:first").val());
        $("input[id='pl'][type='hidden']:first").val(form.find("select:last").val());

        var att = $("input[id='att'][type='hidden']:first");

        att.val("");

        form.find("input[type='checkbox']").each(function()
        {
            var checkbox = $(this);

            att.val(att.val() + "," + ($(this).is(":checked") ? 1 : 0));
        });

        att.val(att.val().substr(1));
        this.hide();
    },

    _resizeEvent: function()
    {
        var docHeight = $(document).height();
        var winHeight = $(window).height();
        var winWidth = $(window).width();

        var dialog = $("#advance-search-panel");
        dialog.css("left", winWidth / 2 - dialog.width() / 2);
        dialog.css("top", winHeight / 2 - dialog.height() / 2);

        $(".ui-widget-overlay").css("height", docHeight > winHeight ? docHeight : winHeight);
    }
}

// Search default text
$(function()
{
    $("input#s").focus(function()
    {
        if ($(this).val() == "Keyword") $(this).val("").css("color", "");
    }).blur(function()
    {
        if ($(this).val().length == 0) $(this).val("Keyword").css("color", "#ccc");
    }).trigger("blur").parents("form").submit(function()
    {
        var kwTxt = $(this).find(":text:first");
        var loTxt = $(this).find(":text:last");
        if (kwTxt.val() == "Keyword") kwTxt.val("");
        if (loTxt.val() == "Location") loTxt.val("");
    });

    $("input#l").focus(function()
    {
        if ($(this).val() == "Location") $(this).val("").css("color", "");
    }).blur(function()
    {
        if ($(this).val().length == 0) $(this).val("Location").css("color", "#ccc");
    }).trigger("blur");

    $("#employer-mainmenu,#employer-submenu").mouseover(function()
    {
        var mainmenu = $("#employer-mainmenu");
        var submenu = $("#employer-submenu");
        var offset = mainmenu.offset();

        submenu.css("left", offset.left);
        submenu.css("top", offset.top + mainmenu.height());

        submenu.show();
    }).mouseout(function()
    {
        $("#employer-submenu").hide();
    });

    $("#employer-mainmenu").click(function()
    {
        this.blur();
        return false;
    });
});
